#!/bin/bash

# 数据库切换脚本
# 用法: ./switch-db.sh [mysql|postgres]

set -e

DB_TYPE=${1:-mysql}
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"

echo "🔄 切换到 $DB_TYPE 数据库..."

case $DB_TYPE in
    mysql)
        echo "📝 配置MySQL环境..."
        
        # 检查MySQL是否运行
        if ! command -v mysql &> /dev/null; then
            echo "❌ MySQL未安装，请先安装MySQL"
            exit 1
        fi
        
        # 创建数据库
        echo "🗄️ 创建MySQL数据库..."
        mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS blog_resume CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
        
        # 执行初始化脚本
        echo "📊 执行MySQL初始化脚本..."
        mysql -u root -p blog_resume < "$PROJECT_ROOT/database/init.sql"
        
        # 设置Spring Profile
        export SPRING_PROFILES_ACTIVE=dev
        echo "✅ MySQL配置完成！使用 ./mvnw spring-boot:run 启动应用"
        ;;
        
    postgres|postgresql)
        echo "📝 配置PostgreSQL环境..."
        
        # 检查PostgreSQL是否运行
        if ! command -v psql &> /dev/null; then
            echo "❌ PostgreSQL未安装，请先安装PostgreSQL"
            exit 1
        fi
        
        # 创建数据库
        echo "🗄️ 创建PostgreSQL数据库..."
        createdb blog_resume 2>/dev/null || echo "数据库已存在，跳过创建"
        
        # 执行初始化脚本
        echo "📊 执行PostgreSQL初始化脚本..."
        psql -d blog_resume -f "$PROJECT_ROOT/database/init_postgres.sql"
        
        # 设置Spring Profile
        export SPRING_PROFILES_ACTIVE=postgres
        echo "✅ PostgreSQL配置完成！使用 ./mvnw spring-boot:run -Dspring.profiles.active=postgres 启动应用"
        ;;
        
    docker-mysql)
        echo "🐳 启动MySQL Docker容器..."
        cd "$PROJECT_ROOT"
        docker-compose up -d mysql redis
        echo "✅ MySQL Docker容器启动完成！"
        ;;
        
    docker-postgres)
        echo "🐳 启动PostgreSQL Docker容器..."
        cd "$PROJECT_ROOT/database"
        docker-compose -f docker-compose-postgres.yml up -d
        echo "✅ PostgreSQL Docker容器启动完成！"
        ;;
        
    *)
        echo "❌ 不支持的数据库类型: $DB_TYPE"
        echo "支持的类型: mysql, postgres, docker-mysql, docker-postgres"
        exit 1
        ;;
esac

echo ""
echo "🎯 下一步:"
echo "1. 检查数据库连接"
echo "2. 启动后端服务"
echo "3. 启动前端服务"
echo ""
echo "📚 更多信息请查看 启动脚本.md"
